<h5>Comunicando el hardware Wiring y Perl</h5>
<p>Este tutorial presenta la comunicaci&oacute;n b&aacute;sica entre el hardware Wiring y Perl <a href="http://www.perl.org/">http://www.perl.org/</a>. El objetivo del tutorial ser&aacute; leer valores simples desde la tarjeta Wiring. Se asume que el software Wiring y Perl est&aacute; instalado y los ajustes apropiados de Wiring han sido completados. Para m&aacute;s informaci&oacute;n acerca de la instalaci&oacute;n de Wiring revise los <a href="http://wiring.org.co/learning/tutorials/">tutoriales</a> sobre la instalaci&oacute;n y los ajustes del software.</p>
<p>En este tutorial, el IDE utilizado es Eclipse <a href="http://www.eclipse.org/">http://www.eclipse.org/</a>con EPIC <a href="http://www.epic-ide.org/">http://www.epic-ide.org/</a> como editor de Perl.</p>
<h5>Paso 1</h5>
<p>Copie y pegue el siguiente c&oacute;digo en el editor Wiring: Verifique que su programa est&eacute; libre de errores de compilaci&oacute;n presionando el bot&oacute;n Compile/Verify en la barra de men&uacute;. Presione el boto&oacute;n Upload en la barra de men&uacute;. En caso de un error de sintaxis el entorno Wiring imprimir&aacute; el mensaje de error de otro modo imprimir&aacute; que la carga se ha completado satisfactoriamente, el proceso de carga activar&aacute; los LEDs Rx/Tx en el hardware Wiring. El nuevo programa empezar&aacute; autom&aacute;ticamente despu&eacute;s de la carga. Use el bot&oacute;n Serial Monitor para ver los datos entrantes desde la tarjeta Wiring, luego cierre el Serial Monitor otra vez.</p>
<pre>
/** 
 * Fotoresitencia / Perl
 * 
 * Lee valores desde una fotoresistencia conectada al 
 * pin an&aacute;logo de entrada 0. El valor leido desde el sensor es proporcional
 * a la cantidad de luz que golpea la superficie del sensor.
 * El valor leido es impreso a trav&eacute;s del serial para ser monitoreado
 * en la consola o recibido en Perl
 */

int val; 

void setup()
{
  Serial.begin(9600);      // ajuste el puerto serial a 9600
}

void loop() 
{
  val = analogRead(0);     // lee el pin an&aacute;logo de entrada 0
  Serial.println(val/4, DEC);  // imprime el valor leido desde el     
  								 // sensor en el pin an&aacute;logo 0 dividido por 4 (rango 0-255)
  delay(200);                  // espera 200ms para la siguiente lectura
}
</pre>
<p>&nbsp;</p>
<h5>Paso 2</h5>
<p>Descargue e Instale el paquete Device::SerialPort de Perl usando Terminal o Command Prompt en Windows. Use las siguientes l&iacute;neas de c&oacute;digo para realizar la instalaci&oacute;n. </p>
<pre>
perl -MCPAN -e shell
install Device::SerialPort
exit</pre>
<h5>Paso 3</h5>
<p>Cree un nuevo proyecto Perl en Eclipse. Copie y pegue el siguiente c&oacute;digo en el editor.</p>
<pre>
#!/usr/bin/perl
use Device::SerialPort;

# Ajuste el puerto
# Cambie el nombre del puerto
my $port = Device::SerialPort->new("/dev/tty.usbserial-A100DNHF");
# Cambie el baudrate si es necesario
$port->baudrate(9600);
$port->databits(8);
$port->parity(10);
$port->stopbits(1);

while (1) {
    # Revisa si hay datos entrando desde la tarjeta
    my $char = $port->lookfor();

    # Si hay datos, imprimalos
    if ($char) {
        print "Recieved character: $char \n";
    }
}</pre>
<h5>Paso 4</h5>
<p>Compile el c&oacute;digo y los datos recibidos deber&aacute;n serimpresos en la consola de Eclipse.</p>
<p><img src="imgs/perl-01.png" width="489" height="316" /></p>
<p>&nbsp;</p>
<p>Siguiente &gt;&gt; <a href="blender2.html">Enviando datos a la tarjeta Wiring desde Perl.</a></p>
